Quake3Arena - Tworzenie map
Ganicie czyjeś, samemu nie umiecie :) Odnosi się to również do gier komputerowych. Gracze mówią: to jest do chrzanu, beznadziejne, a sami lepiej by nie zrobili. A może jednak? Zajmniemy się tworzeniem mapy do gry Quake3Arena w programie Q3Radiant.
Punkt 1: Tworzenie pierwszego pokoju.
a) Zacznijmy od podstaw. Jak zrobić mały pokój? Wbrew pozorom nie jest to takie łatwe, a trudne wcale :) OK, zaczynamy.
b) Po uruchomieniu Q3Radianta powinieneś zauważyć m.in. planszę w kratkę na której znajduje się niebieska figura. Jest to kamera przedstawiająca mapę z pierwszej osoby. Linie które z niej wychodzą to zakres widzenia.
c) Teraz możemy zacząć tworzyć mały pokój. Na początek potrzebujemy teksturę. Rozwijamy menu Textures i wybieramy z niego base_wall. Po chwili Q3Radiant załaduje dostępne tekstury, które teraz pojawią się w jednym z okien. Wybierz jedną z nich klikając na nią lewym przyciskiem myszy. W oknie o którym mówiliśmy na początku (z kamerą), trzymając lewy klawisz myszy zaznacz teren który ma być zajmowany przez pokój.
d) Aby ustalić wysokość należy kliknąć na ikonie XYZ (change views). Większość pokojów w grze ma wyskość 128 jednostek. Teraz musimy przytrzymać lewy klawisz myszy na czerwonej lini i przeciągnąć ją do 128 (miejsce to jest zaznaczone czarnymi cyframi na naszej kartce w kratkę).
e) W tej chwili stworzyliśmy pewnego rodzaju pudełko. Musimy z niego zrobić pokój. W tym celu należy pamiętać, że podczas takiej zamiany pokój stanie się mniejszy o 16 jednostek. Aby to zredukować należy podwyższyć pudełko o 16 jednostek. Robimy to tak jak poprzednio. Teraz należy wcisnąć przycisk Hollow (blisko XYZ). Na naszej kartce w poprzednim prostokącie utworzył się kolejny. Naciskamy klawisz ESC. Pokój gotowy. W kwadracie z widokiem 3D możesz obejrzeć ze wszystkich stron swoje, na razie skromne dzieło.
f) Następnie potrzebujemy miejsca z którego będziemy zaczynać grę. Klikamy prawym przyciskiem myszy na planszy w kratkę. Z rozwiniętego menu wybieramy info, a z kolejnego info_player_deathmatch. Jest to miejsce spadku zawodnika w deathmatchu. Powstałą bryłę wstaw w swój pokój. Nie zapominaj, że pokój jest trójwymiarowy, dlatego trzeba pamiętać o długości i wysokości pokoju, bo inaczej można zacząć grę np. spadając z nadmiernej wysokości. Kiedy już to zrobisz naciśnij ESC. W każdym momencie możesz zmienić zdanie, zaznaczając kwadracik lewym przyciskiem myszy i Shiftem jednocześnie.
g) Kiedy już się zdecydujesz w oknie z widokiem 3D pojawi się nowy obiekt będący koloru różowego. Biała strzałka która z niego wychodzi to miejsce w które będzie patrzył zawodnik, gdy spadnie. Możesz je zmienić wciskając na klawiaturzę literę N. W dostępnym teraz menu możesz ustalić wszystkie szczegóły dotyczące tej postaci.
h) Pozostało nam jeszcze ustawić światła na mapie. Klikamy prawym przyciskiem myszy na planie i wybieramy z niego opcję light. Pojawił się mały kwadracik, a w środku niego krzyżyk. Powstały obiekt przesuń na środek pokoju.
i) Teraz naciśnij na klawiaturze literę N. Pojawi się znane ci okno. Na jego dole są dwa puste pola. W pierwszym - key, wpisujemy light, a w drugim - value, piszemy jak duża ma być jasność światła. Tu mogę tylko doradzić eksperymentowanie. Teraz naciśnij Enter, a następnie N. Zrób Save mapy, a później rozwiń menu BSP. Wybierz z niego opcję bsp_FullVis (light - extra). Kiedy kompilacja zostanie zakończona zamknij okno. Pamiętaj żeby po każdej zmianie na mapie zrobić save i użyć bsp_FullVis. Na razie twoja mapa jest testowa, więc uruchom Quake3Arena i włącz konsolę. Wpisz /sv_pure 0 (inaczej prawdopodobnie nie uruchomisz mapy), a następnie /map
Punkt 2: Dwa pokoje z korytarzem.
a) W pierszym punkcie stworzyliśmy pokój. Teraz spróbujemy czegoś innego. Zmienimy w nim podłogę. W tym celu klikamy na niej jednocześnie Shiftem i lewym klawiszem myszki. Zmieni się jej kolor na czerwony.
b) Z menu Textures wybieramy base_floor. Wybieramy jak ma wyglądać nasza podłoga z dostępnych wzorów. Gdy już wybierzesz kliknij ESC, aby zatwierdzić wybór.
c) Spróbujemy stworzyć komnatę bez zadaszenia. Aby to zrobić z menu Textures wybieramy skies. Teraz postępujemy tak jak z wyborem podłogi.
d) Teraz połączymy ten pokój z innym poprzez korytarz. Najpierw stwórz pokój trochę oddalony od tego, który robiłeś przed chwilą. Najlepiej, aby były one naprzeciwko siebie. Mam nadzieję że sobie poradzisz. Postępuj tak ja w punkcie pierwszym, oprócz ustawiania postaci.
e) Stwórz prostokąt (nasz korytarz), który będzie lekko nachodził na jeden i drugi pokój. Nie używaj komendy Hollow, gdyż nie jest ona tu konieczna. Teraz musisz stworzyć jeszcze jedną taką figurę, też nachodzącą na oba pokoje, ale węższą (szerokość tego prostokątu to przyszła szerokość przejścia między pokojami). Aby stworzyć dziury :) w ścianach naciskamy klawisz CSG Subtract (obok Hollow). Naciśnij Backspace na klawiaturze. Masz już gotowe dwa pokoje połączone korytarzem.
f) Teraz już tylko ustal tekstury dla korytarza znanym ci już sposobem.
Punkt 3: Zaawansowane nakładanie tekstur
a) Po ostatnim tworzeniu korytarzy możliwe że miejsca połączeń ze sobą niektórych ścian nabrały nieestetycznego koloru. Aby to zrobić postępujemy tak jak z podłogą i sufitem, tyle tylko, że zaznaczmy kanty klawiszami Shift+Ctrl+lewy przycisk myszy.
b) Teraz zajmniemy się tworzeniem "zaawansowanego światła". Poprzednim razem stworzyliśmy światło pochodzące z... nicości. Teraz stworzymy lampę. Najlepiej moim zdaniem zrobić to tak. Tworzymy prostokąt: 128 jednostek długości, 32 jednostki szerokości i 8 wysokości. Mam nadzieję, że ustawiłeś obiekt na suficie. Tak będzie bardziej realistycznie :).
c) Teraz zaznaczamy dolną część lampy (tą z której będzie rozchodzić się światło) klawiszami Shift+Ctrl+lewy przycisk myszy. Wybieramy z menu Textures opcję Base_Light. Wybierz teksturę, która ci odpowiada znanym sposobem. Prawdopodobnie będziesz miał problem. Tekstura będzie za duża, albo będzie odwrócona. Naciśnij na klawiaturze literę S. Otworzy się nowe okno nazwane Surface Inspector.
d) Możesz tutaj obrócić teksturę, przesunąć ją w przód, tył, lewo, prawo itd. Możesz to zrobić w górnej-lewej części okna. Kiedy skończysz w dziale Surf flags postaw krzyżyk w okienku lights. Natomiast w okienku Value wpisz jak duża ma być jasność, np. 300. Teraz kliknij na Apply, a później na OK.
e) Jeśli nadal jest coś nie w porządku. Wybierz menu Selection, a z niego Rotate. Możesz teraz wybrać kąt położenia lampy. Ikonka Free Rotation służy do ręcznego obracania obiektu. Gdy ją wciśniesz masz możliwość dowolnego obracania lampy poprzez przytrzymanie lewego przycisku myszy i poruszaniu nią na boki. Kiedy skończysz jeszcze raz kliknij na Free Rotation.
Punkt 4: Tworzenie lustra
a) Tym razem spróbujemy stworzyć w pokoju w którym znajduje się lampa... lustro. Kiedy stworzysz figurę przedstawiającą lustro, wybierz z menu Textures opcję common. Z tekstur, które się załadowały wybierz kwadrat z napisem Mirror.
b) Naciśnij ESC, a następnie kliknij prawym przyciskiem myszy na lustrze (na szablonie). Z rozwiniętego menu wybierz misc, a następnie misc_portal_surface. Pojawi się nowy obiekt: mały kwadracik. Postaw go z przodu lustra (bliżej niż 64 jednostki od niego). Musisz tę czynność powtórzyć tyle razy, aby z tych kwadracików zrobić, jak gdyby ramkę na obrazek. Jest to konieczne, aby lustro pokazywało nasze odbicie ze wszystkich kątów.
Punkt 5: Odskocznie, drzwi, schody
a) A więc chcemy stworzyć odskocznię w podłodze. W tym celu wybieramy z menu Textures opcję sfx. Z załadowanych tekstur wybieramy tę, która będzie współgrała z podłogą. Następnie tworzymy kolejny obiekt: 128 na 128 jednostek i 8 jednostek wysokości. Ustawiamy go na teksturze, którą przed chwilą położyliśmy w taki sposób, aby jedno i drugie było na tym samym poziomie. Wciskamy przycisk CSG Substract. Teraz naciskamy na klawiaturze literę S i poprawiamy ewentualne błędy w wyglądzie tekstur. Możesz teraz nacisnąć ESC. Z menu Textures wybierz opcję common. Z dostępnych tekstur zaznacz brązową z napisem u góry trigger. Połóż ją na nowej bryle o takich samych wymiarach jak odskocznia, ale o wysokości 16 jednostek. Teraz ustaw ją dokładnie nad odskocznią.
Kliknij na niej prawym przyciskiem myszy, a z rozwiniętego menu wybierz Trigger, a następnie Trigger_push. Naciśnij ESC. Jeszcze raz włącz to samo menu, a z niego wybierz kolejno Target i Target_position. Naciśnij na klawiaturze literę N. W nowym menu w oknie Key napisz targetname, a w Value dowolny tekst, np. odskocznia1. Potwierdź wszystko Enterem. Naciśnij ESC. Zaznacz teraz obiekt z teksturą Trigger. Naciśnij N. W polu Key napisz target, a w Value zapamiętany dowolny tekst, np. odskocznia1. Na planie pojawiła się nowa linia. Wskazuje ona, gdzie zawodnik skoczy po wejściu na odkocznię. Linią oczywiście możesz manipulować.
b) Tworzenie schodów jest o wiele prostsze. Po prostu tworzysz obiekty w kształcie jednego stopnia (najlepiej wysokie na 8 jednostek). I łączysz ze sobą. Dzięki kombinacji Ctrl+C możesz kopiować stopień. Teraz możesz na nie położyć tekstury.
c) Na początku tworzyliśmy dwa pokoje połączone korytarzem. Teraz spróbujemy zakończyć korytarz drzwiami. Z menu Textures wybieramy przykładowo Gothic_door. Tworzymy dwa obiekty, które po połączeniu ze sobą pasują do dziury w korytarzu. Robimy to w ten sposób, aby potem sprawiały pewnego rodzaju iluzję: fragment po lewej odsuwa się w lewo, a ten po prawej w prawo. Nakładamy wybraną teksturę. Wybierz jeden z fragmentów drzwi. Naciśnij prawy przycisk myszy. Z menu wybierz kolejno func i func_door. Na klawiaturze naciśnij N. W nowym menu w dolnym lewym rogu jest okno Direction buttons. Ustalasz tam, w którą stronę mają się otwierać drzwi. Nie możesz jednak po prostu napisać left, albo right, znowu musisz operować liczbami. Jeśli nie jesteś pewien co wpisać spójrz w górny lewy róg, tam jest wszystko objaśnione. Kiedy skończysz nie zapomnij o drugiej części drzwi.
Punkt 6: Zaokrąglenia
a) Najpierw stwórz prostokąt. Następnie z menu Curve wybierz jeden z rodzajów zaokrągleń. Ja u siebie wybiorę np. End cap. W poprzednim punkcie po jednej stronie korytarza stworzyliśmy drzwi. Po drugiej spróbujemy zaokrąglenia. Musimy zmienić położenie naszego Curve :), klikając na ikonę obracania osią X.
b) Umiejscowiamy nasze zaokrąglenie na samej górze przejścia. Teraz z menu Curve wybieramy cap/normal, a z kolejnego inverted endcap. Aby wybrać fragment do nałożenia tekstur klikamy lewym przyciskiem myszy, Altem i Shiftem jednocześnie. Teraz postępujemy tak jak zwykle. Jest jeden problem. Po nałożeniu tekstury, jeśli będzie ona za duża, mała itp. trudno ją przesunąć. Wynika to z błędu w Q3Radiancie i mimo, że minęło sporo czasu nie doczekaliśmy się poprawki. Musimy więc poradzić sobie inaczej. Klikamy na klawiaturze literę S. Otwiera się znany nam już surface inspector. W okienkach horizontal shift i vertical shift należy dodać w liczbie po jednym zerze po przecinku. Teraz możesz bezpiecznie przesuwać umieszczonymi obok liczb strzałkami.
c) Używanie zaokrągleń w edytorze jest chyba najtrudniejszą sprawą, dlatego nie będziemy dalej pogłębiać tematu, zwłaszcza że w tekście wszystko mogłoby się pomieszać. Aha, nie zapomnij nadać tekstur. Dodatkowo powinieneś pod zaokrągleniami nałożyć Textures/common/caulk. I pamiętaj, aby eksperymentować, to najlepsza droga do nauczenia się tu czegoś.
Punkt 7: światła
a) Pamiętacie jak tworzyliśmy lampę? Wtedy ograniczyliśmy się do kilku opcji. Teraz trochę poszerzymy temat. Jak pamiętacie gdy zaznaczymy źródło światła i naciśniemy na klawiaturze literę N pojawia się menu. Na początek zaznaczamy light w przewijanym polu. W miejscu Key wpisujemy light, a w Value jasność światła (domyślnie 300). Potwierdzamy wszystko klawiszem Enter. Chcąc zmienić kolor światła (domyślny biały) w key wpisujemy _color, a w Value trzy liczby, w ten sposób: 1 1 1 (czyli po każdej liczbie spacja). Pierwsza liczba to kolor czerwony, druga zielony, a trzecia niebieski. 1 oznacza użycie koloru, 0 nie używanie go. W ten sposób możemy dowolnie mieszać kolory. Jeśli chcesz uzyskać jakiś specyficzny odcień koloru, np. jasny żółty spróbuj tak: 1 1 .6 (radzę eksperymentować i pamiętaj o przedziale od 0 do 1).
b) Kiedy będziesz już bardziej wtajemniczony w Q3Radiancie spróbuj pokombinować z chociażby opcją target. Wtedy możesz ładnym strumieniem światła połączyć dwie lampy. Powodzenia !!!
Punkt 8: Woda i lawa
a) Tworzenie takich obiektów, jak woda i lawa wcale nie jest trudne. Gdy stworzymy odpowiednią bryłę wystarczy położyć na nią teksturę znajdującą się w Textures/Liquids. Nie musisz nawet ustawiać światła.
Punkt 9: Inne obiekty
a) Aby stworzyć obiekt typu np. sześcian, nie trzeba wiele kombinować. Najpierw należy stworzyć prostokąt przykładowo o wymiarach 128 na 128 jednostek i 64 jednostki wysokości. Teraz z menu Brusg wybierasz jedną z opcji .sided. Gdy wybierzesz 5 sided twój prostokąt zamieni się w pięciobok, gdy 3 w trójkąt itd.
Punkt 10: Jeszcze raz światła i ogień
a) W mapie Q3DM17 znajdują się naprawdę czaderskie światła. Teraz dowiesz się jak je zrobić. Stwórz obiekt 128 na 32 jednostki i 8 jednostek wysokości. Część lampy zwróconą w stronę podłogi pokryj teksturą (najlepiej baslt4_1_2k). Reszta stron lampy nie powinna być pokryta świetlaną teksturą.
b) Stwórz obiekt, który przykrywałby wewnętrzną teksturę. Musisz poprowadzić od środka lampy w ten sposób linie, aby zaznaczyć każdym bokiem figury miejsce docierania światła. Pomoże ci w tym Edge Tool, znajdujący się na klawiaturze pod literą E. Połóż teraz na niego teksturę sfx/beam. Prawdopodobnie wystąpią problemy z wielkością tekstury, dlatego najlepiej nacisnąć literę S, która uruchomi Surface Inspectora. Zmień w nim wartość vertical stretch. Dla przykładu który teraz robimy najlepiej pasuje 1.1. Wyjdź z Surface Inspectora. Obniż trochę obiekt który pokryłeś teksturą światła. Jej górna część wygląda brzydko. Dlatego użyj tekstury common/nodraw. Gdy to zrobisz możesz z powrotem ustawić obiekt w dawne miejsce.
c) Jedno z głowy. Na większości poziomów gotyckich znajdują się czaszki, w których płonie ogień. Spóbujemy stworzyć taką samą. Klikamy prawym przyciskiem myszy na planie. Z menu wybieramy misc/misc_model. Ze spisu katalogów storch/storch.md3. Zamiast czaszki pojawił się jednak jedynie kwadracik. Naciskamy N i w Value wpisujemy zamiast tego co jest models/mapobjects/storch/storch.md3. Nic jednak się nie zmieniło. Musisz teraz zapisać swoją mapę i ponownie ją otworzyć. Będzie wszystko OK.
d) Postaw czaszkę przy ścianie. Teraz zajmniemy się ogniem, który będze z niej wychodził. Stwórz nad czaszką obiekt. Musi być długi na 24 jednostki, szeroki na 2 i wysoki na 48. Nałóż teksturę common/nodraw. Zaznacz tą część płomienia, który jest zwrócony w tę stronę co czaszka. Nadaj mu teksturę sfx/flame1. Jeśli będziesz miał problemy z jej wielkością użyj znanego Ci już Surface Inspectora.
e) Z przodu ogień wygląda cool! Gorzej z boku. Dlatego kopiujemy przednią teksturę (Ctrl+C, Ctrl+V). Kopia będzie się znajdować w tym samym miejscu co oryginał. Teraz po prostu obróć płomień o 90 stopni. Jeśli przeszkadza ci dziwny efekt cieni nałóż tekstruę sfx/flame1side.
f) Jeszcze jedna notka która odnosi się nie tylko do tego punktu. W tym przypadku możemy np. dodać (prawy przycisk myszy) z menu target/target_speaker dźwięk sound/world/firesoft.wav i postawić go tuż przed czaszką.
Punkt 11: Windy
a) Przypuśćmy, że chcemy stworzyć windę, która będzie przeprowadzać gracza przez lawę. Na początek tworzymy obiekt o wielkości 64 na 64 jednostki i 8 jednostek wysokości.
b) Naciskamy prawy przycisk myszy. Z rozwiniętego menu wybieramy Func/func_train. Naciskamy ESC i ponownie otwieramy menu z którego wybieramy path/path_corner. Na mapie pojawi się mały kwadracik. Teraz naciśnij na klawiaturze N. W menu, które się pojawiło w polu Key możesz wpisać np. speed, wait. Po wpisaniu pierwszej komendy możesz w polu Value wpisać prędkość poruszania się windy, druga, zaś oznacza czas jej postoju n poszczególnym "przystanku" (czas oznaczasz w polu Value w sekundach). Zanim jednak zaczniesz tu coś robić odznacz ESCAPEM pathcorner. Stwórz teraz drugi w ten sam sposób i postaw go w miejscu w którym ma się znajdować "przystanek".
c) Teraz zajmniemy się windą (pamiętasz robiliśmy ją na początku punktu). Po jej zaznaczeniu klikamy lirę N i zaznaczamy opcję Start_On. W polu Key wpisz target, a w Value path1. Wyjdź z menu, odznacz windę i ponownie zaznacz pierwszy utworzony pathcorner. Naciśnij N. W polu Key napisz targetname, a w Value path1. Potwierdź wszystko tradycyjnie Enterem. Ponownie wejdź w pole Key. Wpisz target, a w Value path2.
d) Wychodzimy z menu, odznaczamy klawiszem ESC pierwszy pathcorner i zaznaczamy drugi. Naciskamy N. W polu Key wpisujemy targetname, a w Value path2. Potwierdzamy Enterem. Ponownie wchodzimy w pole Key. Wpisujemy target, a w Value path1.
e) To wszystko. Jeśli chcesz możesz oczywiście stworzyć więcej postojów. Wtedy tylko zmieniasz analogicznie numery punktów.
Punkt 12: Spawn z przedmiotami
a) Czasami człowiek chciałby się odrodzić w Quake'u mając już w garści BFG. Jest to możliwe. A oto jak to zrobić. Na początek stwórz wszystkie przedmioty, z którymi ma się odradzać zawodnik. Mogą się one nawet znajdować poza planszą. Z menu znajdującego się pod prawym przyciskiem myszy wybierz target/target_give (również gdziekolwiek). Stwórz wszystkie miejsca spawnu na mapie. Zaznacz obiekt target_give. Zaznacz przedmiot który wcześniej stworzyłeś, a z którym ma się odradzać gracz. Naciśnij Ctrl+K, aby dodać dwa elementy razem. Kiedy dodasz już wszystkie przedmioty do wszystkich spawnów. Tradycyjnie zapisz mapę. Zrób BSP i dokop swoim kolegom na twojej nowej ULTRA mapie.
Żegnam się z wami następującymi słowami (trochę zmiksowanymi)...ciekawe czy zgadniecie kogo? Ahh... Sit and relax, you know what that means. Lesson one: your favourite beer and of course CD with Quake 3. You know how it's hard and hard to make a map to FPP game. But y'know that some blood can calm you down. Ta ta !!!
Autor: Mirage